Example 10 - Example of rotor connected by a rigid mechanical coupling with parallel misalignment.ΒΆ
In this example, we use a finite element (FE) model to represent the rotor that is available as a test rig in LMest - UFU for demonstrating the results obtained when we have a misalignment defect present in the system. The system is composed of a flexible steel shaft with \(0.914 m\) length and \(0.019 m\) diameter (it is modeled using Timoshenko beam-element), two rigid discs (both of steel with \(0.150 m\) diameter and \(0.020 m\) thickness) and two self alignment ball bearings. A model updating procedure was used to obtain a representative FE model for the numerical simulations presented in this work. In this sense, a heuristic optimization technique (Differential Evolution) was used to determine the unknown parameters of the model, namely the stiffness and damping coefficients of the bearings, besides the proportional damping.
[1]:
import numpy as np
import ross as rs
from ross.defects import *
from ross.defects.misalignment import misalignment_flex_parallel_example
[2]:
"""Create example rotor with given number of elements."""
steel2 = rs.Material(name="Steel", rho=7850, E=2.17e11, G_s=81.2e9)
# Rotor with 6 DoFs, with internal damping, with 10 shaft elements, 2 disks and 2 bearings.
i_d = 0
o_d = 0.019
n = 33
# fmt: off
L = np.array(
[0 , 25, 64, 104, 124, 143, 175, 207, 239, 271,
303, 335, 345, 355, 380, 408, 436, 466, 496, 526,
556, 586, 614, 647, 657, 667, 702, 737, 772, 807,
842, 862, 881, 914]
)/ 1000
# fmt: on
L = [L[i] - L[i - 1] for i in range(1, len(L))]
shaft_elem = [
rs.ShaftElement6DoF(
material=steel2,
L=l,
idl=i_d,
odl=o_d,
idr=i_d,
odr=o_d,
alpha=8.0501,
beta=1.0e-5,
rotary_inertia=True,
shear_effects=True,
)
for l in L
]
Id = 0.003844540885417
Ip = 0.007513248437500
disk0 = rs.DiskElement6DoF(n=12, m=2.6375, Id=Id, Ip=Ip)
disk1 = rs.DiskElement6DoF(n=24, m=2.6375, Id=Id, Ip=Ip)
kxx1 = 4.40e5
kyy1 = 4.6114e5
kzz = 0
cxx1 = 27.4
cyy1 = 2.505
czz = 0
kxx2 = 9.50e5
kyy2 = 1.09e8
cxx2 = 50.4
cyy2 = 100.4553
bearing0 = rs.BearingElement6DoF(
n=4, kxx=kxx1, kyy=kyy1, cxx=cxx1, cyy=cyy1, kzz=kzz, czz=czz
)
bearing1 = rs.BearingElement6DoF(
n=31, kxx=kxx2, kyy=kyy2, cxx=cxx2, cyy=cyy2, kzz=kzz, czz=czz
)
rotor = rs.Rotor(shaft_elem, [disk0, disk1], [bearing0, bearing1])
[3]:
"""Inserting a mass and phase unbalance and defining the local response."""
massunbt = np.array([5e-4, 0])
phaseunbt = np.array([-np.pi / 2, 0])
probe1 = (14, 0)
probe2 = (22, 0)
[4]:
"""Calculate the response of the rotor connected by a rigid mechanical coupling with parallel misalignment."""
misalignment = rotor.run_misalignment(
coupling="rigid",
dt=0.0001,
tI=0,
tF=5,
eCOUP=2e-4,
TD=0,
TL=0,
n1=0,
speed=1200,
massunb=massunbt,
phaseunb=phaseunbt,
print_progress = False,
)
[5]:
"""Plots the time response for the two given probes."""
results = misalignment.run_time_response()
results.plot_1d([probe1, probe2]).show()
[6]:
"""Plots the frequency response for the two given probes."""
misalignment.plot_dfft([probe1, probe2], range_freq=[0, 100], yaxis_type="log").show()